-- borramos el log, dentro de suscripciones_bdd
dump tran suscripciones_bdd with truncate_only

alter table escritor add nombre varchar (50) NULL



---Check

alter table suscriptor_son add constraint ck_estado_suscriptor_son check (estado='SONORA')
alter table suscriptor_df add constraint ck_estado_suscriptor_df check (estado='DF')
alter table suscriptor_tam add constraint ck_estado_suscriptor_tam check (estado='TAMAULIPAS')






-- insert into suscriptor_df
insert into suscriptor_df(suscriptor_id,nombre,apellidos,telefono,domicilio,estado)
values(0000,'nombre suscriptor df 001','apellidos suscriptor df 001',5523092471,'domicilio suscriptor df 001','DF')

insert into suscriptor_df(suscriptor_id,nombre,apellidos,telefono,domicilio,estado)
values(0001,'nombre suscriptor df 002','apellidos suscriptor df 002',5523092472,'domicilio suscriptor df 002','DF')

-- insert into suscriptor_son
insert into suscriptor_son(suscriptor_id,nombre,apellidos,telefono,domicilio,estado)
values(1000,'nombre suscriptor son 001','apellidos suscriptor son 001',5523092471,'domicilio suscriptor son 001','SONORA')

insert into suscriptor_son(suscriptor_id,nombre,apellidos,telefono,domicilio,estado)
values(1001,'nombre suscriptor son 002','apellidos suscriptor son 002',5523092472,'domicilio suscriptor son 002','SONORA')

-- insert into suscriptor_tab
insert into suscriptor_tab(suscriptor_id,nombre,apellidos,telefono,domicilio,estado)
values(3000,'nombre suscriptor tab 001','apellidos suscriptor tab 001',5523092471,'domicilio suscriptor tab 001','TABASCO')

insert into suscriptor_tab(suscriptor_id,nombre,apellidos,telefono,domicilio,estado)
values(3001,'nombre suscriptor tab 002','apellidos suscriptor tab 002',5523092472,'domicilio suscriptor tab 002','TABASCO')

-- insert into suscriptor_tam
insert into suscriptor_tam(suscriptor_id,nombre,apellidos,telefono,domicilio,estado)
values(2000,'nombre suscriptor tam 001','apellidos suscriptor tam 001',5523092471,'domicilio suscriptor tam 001','TAMAULIPAS')

insert into suscriptor_tam(suscriptor_id,nombre,apellidos,telefono,domicilio,estado)
values(2001,'nombre suscriptor tam 002','apellidos suscriptor tam 002',5523092472,'domicilio suscriptor tam 002','TAMAULIPAS')

-- insert into suscriptor_tlax
insert into suscriptor_tlax(suscriptor_id,nombre,apellidos,telefono,domicilio,estado)
values(4000,'nombre suscriptor tlax 001','apellidos suscriptor tlax 001',5523092471,'domicilio suscriptor tlax 001','TLAXCALA')

insert into suscriptor_tlax(suscriptor_id,nombre,apellidos,telefono,domicilio,estado)
values(4001,'nombre suscriptor tlax 002','apellidos suscriptor tlax 002',5523092472,'domicilio suscriptor tlax 002','TLAXCALA')

-- procedimientos de insert en BRAHM
-- procedimientos de insert
create procedure inserta_en_suscriptor_df(
	@suscriptor_id 		numeric(10),
	@nombre 			varchar(50),
	@apellidos 			varchar(50),
	@telefono 			numeric(12),
	@domicilio 			varchar(50),
	@estado 			varchar(50)
) as 
insert into suscriptor_df(suscriptor_id,nombre,apellidos,telefono,domicilio,estado)
values(@suscriptor_id,@nombre,@apellidos,@telefono,@domicilio,@estado);

create procedure inserta_en_suscriptor_son(
	@suscriptor_id 		numeric(10),
	@nombre 			varchar(50),
	@apellidos 			varchar(50),
	@telefono 			numeric(12),
	@domicilio 			varchar(50),
	@estado 			varchar(50)
) as 
insert into suscriptor_son(suscriptor_id,nombre,apellidos,telefono,domicilio,estado)
values(@suscriptor_id,@nombre,@apellidos,@telefono,@domicilio,@estado);

create procedure inserta_en_suscriptor_tam(
	@suscriptor_id 		numeric(10),
	@nombre 			varchar(50),
	@apellidos 			varchar(50),
	@telefono 			numeric(12),
	@domicilio 			varchar(50),
	@estado 			varchar(50)
) as 
insert into suscriptor_tam(suscriptor_id,nombre,apellidos,telefono,domicilio,estado)
values(@suscriptor_id,@nombre,@apellidos,@telefono,@domicilio,@estado);




---insert into frecuencia_salida

insert into frecuencia_salida(frecuencia_salida_id,periodo)
values(1,'diaria')

insert into frecuencia_salida(frecuencia_salida_id,periodo)
values(2,'semanal')

--insert into tipo_publicacion

insert into tipo_publicacion(tipo_publicacion_id,tipo)
values(1,'periodico')

insert into tipo_publicacion(tipo_publicacion_id,tipo)
values(2,'revista')

-- insert into editorial

insert into editorial(editorial_id,nombre,telefono,domicilio,estado)
values(1,'McGrawHill',55217794,'Coyoacan cerca de CU', 'DF')

--insert into publicacion
insert into publicacion(publicacion_id,tipo_publicacion_id,frecuencia_salida_id,editorial_id,nombre)
values(1,1,1,1,'BDD')





create procedure inserta_en_suscripcion_df(
	@folio 			numeric(10),
	@suscriptor_id 		numeric(10),
	@publicacion_id 	numeric(10),
	@fecha_inicio 		date,
	@duracion 		numeric(5)
) as 
insert into suscripcion_df(folio,suscriptor_id,publicacion_id,fecha_inicio,duracion)
values(@folio,@suscriptor_id,@publicacion_id,@fecha_inicio,@duracion);

create procedure inserta_en_suscripcion_son(
	@folio 			numeric(10),
	@suscriptor_id 		numeric(10),
	@publicacion_id 	numeric(10),
	@fecha_inicio 		date,
	@duracion 		numeric(5)
) as 
insert into suscripcion_son(folio,suscriptor_id,publicacion_id,fecha_inicio,duracion)
values(@folio,@suscriptor_id,@publicacion_id,@fecha_inicio,@duracion);

create procedure inserta_en_suscripcion_tam(
	@folio 			numeric(10),
	@suscriptor_id 		numeric(10),
	@publicacion_id 	numeric(10),
	@fecha_inicio 		date,
	@duracion 		numeric(5)
) as 
insert into suscripcion_tam(folio,suscriptor_id,publicacion_id,fecha_inicio,duracion)
values(@folio,@suscriptor_id,@publicacion_id,@fecha_inicio,@duracion);



---Existing tables de asereplicado para hacer las vistas generales en df

create existing table suscriptor_tab(
	suscriptor_id 		numeric(10),
	nombre 				varchar(50),
	apellidos 			varchar(50),
	telefono 			numeric(12),
	domicilio 			varchar(50),
	estado 				varchar(50)
) external table at "ASEREPLICADO.suscripciones_bdd.dbo.suscriptor_tab"

create existing table suscriptor_tlax(
	suscriptor_id 		numeric(10),
	nombre 				varchar(50),
	apellidos 			varchar(50),
	telefono 			numeric(12),
	domicilio 			varchar(50),
	estado 				varchar(50)
)external table at "ASEREPLICADO.suscripciones_bdd.dbo.suscriptor_tlax"


create existing table suscripcion_tab(
	folio 			numeric(10),
	suscriptor_id 		numeric(10),
	publicacion_id 	numeric(10),
	fecha_inicio 		date,
	duracion 		numeric(5)
) external table at "ASEREPLICADO.suscripciones_bdd.dbo.suscripcion_tab"

create existing table suscripcion_tlax(
	folio 			numeric(10),
	suscriptor_id 		numeric(10),
	publicacion_id 	numeric(10),
	fecha_inicio 		date,
	duracion 		numeric(5)
) external table at "ASEREPLICADO.suscripciones_bdd.dbo.suscripcion_tlax"


-- procedimientos de borrado

create procedure borrar_de_suscriptor_df(
	@suscriptor_id 		numeric(10)
) as 
delete from suscriptor_df where suscriptor_id=@suscriptor_id;

create procedure borrar_de_suscriptor_son(
	@suscriptor_id 		numeric(10)
) as 
delete from suscriptor_son where suscriptor_id=@suscriptor_id;

create procedure borrar_de_suscriptor_tam(
	@suscriptor_id 		numeric(10)
) as 
delete from suscriptor_tam where suscriptor_id=@suscriptor_id;



-- triggers
create trigger  trgr_suscriptor on SUSCRIPTOR
instead of insert as
	declare	@suscriptor_id 		numeric(10)
	declare	@nombre 			varchar(50)
	declare	@apellidos 			varchar(50)
	declare	@telefono 			numeric(12)
	declare	@domicilio 			varchar(50)
	declare	@estado 			varchar(50)
begin
	select 	@suscriptor_id=suscriptor_id,
			@nombre=nombre,
			@apellidos=apellidos,
			@telefono=telefono,
			@domicilio=domicilio,
			@estado=estado
	from inserted
	if upper(@estado)='DF'
		exec inserta_en_suscriptor_df @suscriptor_id,@nombre,@apellidos,@telefono,@domicilio,upper(@estado)
	else if upper(@estado)='SONORA'
		exec inserta_en_suscriptor_son @suscriptor_id,@nombre,@apellidos,@telefono,@domicilio,upper(@estado)
	else if upper(@estado)='TAMAULIPAS'
		exec inserta_en_suscriptor_tam @suscriptor_id,@nombre,@apellidos,@telefono,@domicilio,upper(@estado)
	else if upper(@estado)='TABASCO'
		exec inserta_en_suscriptor_tab @suscriptor_id,@nombre,@apellidos,@telefono,@domicilio,upper(@estado)
	else if upper(@estado)='TLAXCALA'
		exec inserta_en_suscriptor_tlax @suscriptor_id,@nombre,@apellidos,@telefono,@domicilio,upper(@estado)
end

create trigger  trgr_suscripcion on suscripcion
instead of insert as
	declare	@folio 				numeric(10)
	declare @suscriptor_id 		numeric(10)
	declare @publicacion_id 	numeric(10)
	declare @fecha_inicio 		date
	declare @duracion 			numeric(5)
	declare @estado			varchar(50)
begin
	select 	@folio=folio,
			@suscriptor_id=suscriptor_id,
			@publicacion_id=publicacion_id,
			@fecha_inicio=fecha_inicio,
			@duracion=duracion
	from inserted

	select @estado=estado
	from SUSCRIPTOR
	where suscriptor_id=@suscriptor_id

	if upper(@estado)='DF'
		exec inserta_en_suscripcion_df @folio,@suscriptor_id,@publicacion_id,@fecha_inicio,@duracion
	else if upper(@estado)='SONORA'
		exec inserta_en_suscripcion_son @folio,@suscriptor_id,@publicacion_id,@fecha_inicio,@duracion
	else if upper(@estado)='TAMAULIPAS'
		exec inserta_en_suscripcion_tam @folio,@suscriptor_id,@publicacion_id,@fecha_inicio,@duracion
	else if upper(@estado)='TABASCO'
		exec inserta_en_suscripcion_tab @folio,@suscriptor_id,@publicacion_id,@fecha_inicio,@duracion
	else if upper(@estado)='TLAXCALA'
		exec inserta_en_suscripcion_tlax @folio,@suscriptor_id,@publicacion_id,@fecha_inicio,@duracion
	
end

